<?php

/**
 * Сопровождение процесса регистрации
 */
/**
 * @todo Добавить фильтрацию данных во всех методах регистрации
 */
class Registration_Service {

    const DB_ERROR = 'Регистрация не удалась';
    const USER_EXISTS = 'Вы уже зарегестрированы';
    const CANDIDATE_EXISTS = 'Вы уже отправили заявку на регистрацию';
    const REGISTRATION_COMPLETE = 'Регистрация удалась';
    const FAIL_DATA = 'Введены неверные данные';
    private $registration_databse_model;

    public function __construct() {
        $this->registration_databse_model = new Registration_Model_Registration();
    }

    /**
     * Проверяем существует ли пользователь
     * @param type $user array()
     * @return type bool
     */
    public function existsUser($user = array()) {
        try {
            return $this->registration_databse_model->existsUser($user);
        }
        catch (Exception $ex) {
            Zend_Registry::get('logger')->log(Models_Errors::SELECT_ERROR
                    . $ex, Zend_Log::ALERT);
            return false;
        }
    }

    /**
     * Проверяем существует ли кандидат
     * @param type $candidate array()
     * @return type bool
     */
    public function existsCandidate($candidate = array()) {
        try {
            return $this->registration_databse_model->existsCandidate($candidate);
        }
        catch (Exception $ex) {
            Zend_Registry::get('logger')->log(Models_Errors::SELECT_ERROR
                    . $ex, Zend_Log::ALERT);
            return false;
        }
    }

    /**
     * Вставляем кандидата
     * @param type $candidate array()
     * @return type boll
     */
    public function insertCandidate($candidate = array()) {
        try {
            return $this->registration_databse_model->insertCandidate($candidate);
        }
        catch (Exception $ex) {
            Zend_Registry::get('logger')->log(Models_Errors::INSERT_ERROR
                    . $ex, Zend_Log::ALERT);
            return false;
        }
    }

}